package com.event.management.frontend.dto;

import lombok.Data;
import java.io.Serializable;

/**
 * 活动查询参数
 */
@Data
public class EventQueryParam implements Serializable {

    private static final long serialVersionUID = 1L;
    
    /**
     * 页码
     */
    private Integer pageNum = 1;
    
    /**
     * 每页大小
     */
    private Integer pageSize = 10;
    
    /**
     * 搜索关键词
     */
    private String keyword;
    
    /**
     * 分类
     */
    private String category;
    
    /**
     * 标签
     */
    private String tag;
    
    /**
     * 排序类型（1-最新上线，2-即将开始，3-热门优先）
     */
    private Integer sortType = 1;
    
    /**
     * 自定义toString方法，生成更好的缓存键
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("page").append(pageNum)
          .append("_size").append(pageSize);
        
        if (keyword != null && !keyword.isEmpty()) {
            sb.append("_kw").append(keyword);
        }
        
        if (category != null && !category.isEmpty()) {
            sb.append("_cat").append(category);
        }
        
        if (tag != null && !tag.isEmpty()) {
            sb.append("_tag").append(tag);
        }
        
        sb.append("_sort").append(sortType);
        
        return sb.toString();
    }
} 